home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
ELECTRON
/
1085.ZIP
/
FIRPLOT.ARC
/
READ.ME
< prev
next >
Wrap
Text File
|
1988-04-01
|
66KB
|
925 lines
Firplot is a program which calculates the filter coefficients for
Finite Impulse Response (FIR) digital filters. It will run on all
PC-type computers.
If you intend to use FIRPLOT for serious work, rather than with
the reduced capability of this version, use the order blank at the
end of this file. The advantage of having the full 128 stage
capability is shown by examples in this file.
Paul Selwa
61 East Tilden Dr.
Brownsburg, Indiana 46112
FIR FILTERS.
There are various types of digital filters. Of these the Finite
Impulse Response (FIR) filter is the most useful. It is
unconditionally stable and has guaranteed linear phase response.
It is resistant to the effects of noise and is the least sensitive
type of digital filter to the effects of the precision (length) of
the filter coefficients.
CONSTRUCTION OF FIR DIGITAL FILTERS.
An FIR filter consists of the following components, some of which
can exist in hardware or in software.
1. A low pass filter (LPF) to limit the bandwidth of the signal.
It is called an anti-alaising filter.
2. An analog-to-digital converter (ADC). It may need to be
preceded by a sample and hold circuit if its conversion time
is long.
3. A data memory which saves the digitized samples of the signal
which is being processed. Data is usually put into two's
complement form to be compatible with most multipliers.
4. A set of filter coefficients which are used to multiply the
data memory's samples. These are usually in two's complement
(2C) form.
5. An accumulator which contains the sum-of-product terms which
are generated by multiplying the data memory contents by the
filter coefficients.
6. A multiplier chip, or a processor with multiplying capability.
7. A digital to analog converter (DAC) to change the filter's
output to an analog signal.
8. A low pass filter to remove noise from the output. It is
called a reconstruction filter and passes the same frequency
components as does the anti-alaising filter.
ALAISING:
Any digital filter has a bandwidth limitation which is set by the
sampling rate of the input ADC which must be at least twice the
bandwidth of the anti-alaising filter. The folding frequency is
defined as exactly one-half of the sampling rate and is
theoretically the maximum frequency which the filter can handle
without alaising problems. When a signal is being sampled at a
given rate, the signal's components are duplicated above and below
each harmonic of the sampling frequency, just as they would appear
as sidebands from an AM transmitter operating at the sampling
frequency. If you have a sampling rate of 10000 Hz and a signal
of 1000 Hz you would get spurious outputs from the sampler at 9000
Hz, (10000- 1000 Hz), and at 11000 Hz, (10000+1000 Hz), in
addition to the baseband signal of 1000 Hz. If the input signal's
frequency was raised to 4999 Hz the sampler would produce sideband
components at 5001 Hz, at 14999 Hz as well as the 4999 Hz baseband
signal. Clearly, the crossover point between the baseband signal
and the lower sideband image of it will occur at one-half of the
sampling rate. Input signals of frequency greater than the
folding frequency will appear as aliases of lower frequency
signals.
FILTER COEFFICIENTS.
The stored data samples are all multiplied by the filter's
coefficients, (also called filter taps), one-for-one in between
the acquisition of each successive data sample. The product of
each of the multiply operations is accumulated and this sum-of-
products result is a data word which is the filter's output until
the next output value is calculated.
The program first calculates a coefficient set for a filter having
unity gain (0 dB). While these tap weights will produce a working
filter, the set of numbers may not use the full 8 or 16 bit
capability of the processor you are building unless your hardware
can handle floating point math. After finding the tap weights for
the 0 dB filter, the program finds the largest valued coefficient
and linearly scales all of them to gain the best use of fixed
point hardware's mathematical range. These results are printed in
decimal and in 2C hexadecimal notation which has been scaled for a
16 bit machine.
The value of a 2C tap from the program will be equal to:
-1*(sign bit) + (positive value of the remaining bits)
with the left-most remaining bit having a value of +0.5, the next
having a value of +0.25 and so on.
OPERATION OF AN FIR FILTER.
Suppose you need a length 5 FIR filter. To make for easy notation
I will refer to the data samples as D1-Dx, to the coefficients as
C(1)-C(5). and to the outputs as O1-Ox. After the fifth data
sample is taken, the first useable output sample is produced. The
outputs prior to then will be unpredictable and you may want to
mute the output until then.
O1 = D1*C(5) + D2*C(4) + D3*C(3) + D4*C(2) + D5*C(1)
The output value O1 is placed in the output DAC. Calculation is
then halted until the 6th data sample appears. It replaces the
first sample, and then the second output is calculated. In all
cases, the new data sample replaces the oldest stored data sample.
O2 = D2*C(5) + D3*C(4) + D4*C(3) + D5*C(2) + D6*C(1)
Output sample O2 is placed into the output DAC. Again the filter
waits for the next data sample (which replaces the second sample),
and then calculates the third output sample.
O3 = D3*C(5) + D4*C(4) + D5*C(3) + D6*C(2) + D7*C(1).
This process is continued, and the filter produces outputs at the
same rate as the incoming samples.
OUTPUT DATA PROCESSING:
The multiplication of two 16 bit 2C words produces a 32 bit
product in which two identical sign bits occur. You will take the
top 16 bits as your result after you perform a left shift of one
bit to remove the redundant sign bit that results from the
multiplication of two 2C numbers. Some multipliers will provide
this function automatically.
The 2C result may have to be changed back to simple binary code
for the output DAC. This is easily accomplished by inverting the
sign bit position of the sum-of-products. This will shift the 2C
number to a value between zero and the maximum value your data
variable can achieve.
USING FIRPLOT:
Start the program by entering its name without the "EXE" file
extension. The program will prompt you for a file-name so it can
store the filter's parameters on disk. This file holds all of
your entries and all program data outputs.
THE PROGRAM DOES NOT CHECK FOR AN EXISTING FILE OF THE SAME NAME.
USE CAUTION IN NAMING THE DISK FILE !!!!!!!!!
PROGRAM INPUTS:
The number of bands is the total of the passbands plus the
stopbands. A simple lowpass filter requires an entry of 2.
The filter length is an integer between 3 and 128 inclusive, but
the length parameter is restricted to a smaller number in this
shareware version of FIRPLOT.
The band edges can be entered as decimal fractions of the sampling
rate, or as frequency variables. For the former mode the numbers
represent fractions of the sampling rate which can be anything
your hardware can handle. If you enter band edges as real
frequency values, the program will prompt you for the actual
sampling rate. There are several checks provided as you enter
these parameters. For example, if you enter the passband and
stopband edges as fractions of the sampling rate, and you call for
a band edge greater than the folding frequency, which is 0.5, the
program will go back to the first band edge so you can enter them
again. Similarly, if you had chosen to enter the band edges in
terms of frequency and one of them is of a frequency greater than
the folding frequency, the program will back up to the start of
the routine. This feature allows for easy escape from an error in
band edge definition without going back to the start of the
program. In addition, if a valid band edge was entered out of
sequence the program also returns to the start of the band edge
entry routine.
You will enter parameters which define the bands as passbands or
as stopbands. In that way you define lowpass, highpass, bandpass
and notch filters.
The final parameter is the RELATIVE ripple in the bands. These
are basically Chebyshev filters, but this is not the dB value of
the ripple. It is the ratio of the ripple values in the filter's
bands. The actual ripple values are minimized by the program.
PROGRAM OUTPUTS:
The program starts computing the filter's taps after the relative
ripple values are chosen. The execution time is mainly
proportional to the filter's length. A 128 tap filter can easily
take 15-20 minutes on a computer without a co-processor. In
general, a co-processor will cut the time by 80%. Run time is not
linearly related to filter length. Short filters will run in
seconds. The program will automatically use a co-processor if
there is one in the system.
The first output list is the impulse response of the filter. It
is named that because if a single data sample with a value of 1
was fed into the filter, preceded and followed by zeros, the
"impulse response" would show outputs equal to the filter's
coefficients. The next list is a version of the impulse response,
which is scaled to force the maximum of the impulse response's
absolute values to fall as close as possible to "-1" if the
largest coefficient was negative, or to "+1-(one LSB of a 16 bit
binary 2C number)" if the largest absolute value was a positive
number. The gain change that this causes in the filter's output
level is printed at the top of the scaled impulse response
listing.
The accompanying two's complement hex listing is based on a 16 bit
fixed point hardware system. If you want to use a smaller operand
pick the number of bits you wish, starting with the MSB of the hex
number.
The next output data is a list of the filter's gain as a function
of frequency. Its resolution is in steps of 0.05*(sampling rate).
The filter's gain data is plotted and is stored on disk. First,
in a compressed form which fits on the CRT and provides you with a
quick look at the filter's response curve, and second, in 1 dB
resolution if you request that output. The 1 dB plot is optional
because it will also go to the disk well as to the CRT and really
eats up disk space. The detailed plot contains characters to
indicate the direction of amplitude changes since high order
filters have stopband nulls that are very close together.
PROBLEMS.
There are conditions you can ask for that the program cannot
handle. These are usually in terms of extremely sharp cutoff
requirements and will cause either a divide by zero error, or in a
failure to converge to a mathematical solution. The first type of
error will be flagged by your operating system, and the second by
the filter design program. There are no known problems in the
program, and it is based on a well proven algorithm.
EXAMPLES:
Some data has been removed from the larger problems to save disc space.
*** START OF THE NEXT FILTER PROBLEM ***
THIS FILE IS; A:DEMO
BANDPASS FILTER
THE NUMBER OF BANDS = 2
THE FILTER LENGTH = 9
THE SAMPLING RATE IS 5000
THE BAND EDGES ARE IN Hz.
EDGE # 1 = .000
EDGE # 2 = 1000.000
EDGE # 3 = 2000.000
EDGE # 4 = 2500.000
BAND # 1 IS A PASSBAND
BAND # 2 IS A STOPBAND
THE RELATIVE RIPPLE CONSTANTS ARE:
BAND # 1 RIPPLE CONSTANT = 1.23
BAND # 2 RIPPLE CONSTANT = 9.44
**********************************************************************
FINITE IMPULSE RESPONSE (FIR)
LINEAR PHASE DIGITAL FILTER
REMEZ EXCHANGE ALGORITHM
BANDPASS FILTER
***** IMPULSE RESPONSE *****
THESE ARE UNSCALED RESULTS WHICH ARE NOT OPTIMIZED FOR FIXED POINT ARITHMETIC.
C( 1) = .82876400E-02 = C( 9)
C( 2) = -.60614180E-01 = C( 8)
C( 3) = -.55091620E-01 = C( 7)
C( 4) = .29463406E+00 = C( 6)
C( 5) = .56901626E+00 = C( 5)
SCALED COEFFICIENTS IN DECIMAL AND IN FRACTIONAL TWO'S COMPLEMENT FORM.
THIS FILTER'S GAIN = 4.90 dB. COMPARED TO THE OUTPUT PLOT.
C( 1) = .14564412E-01 = C( 9) 01DD
C( 2) = -.10652126E+00 = C( 8) F25E
C( 3) = -.96816106E-01 = C( 7) F39C
C( 4) = .51777971E+00 = C( 6) 4246
C( 5) = .99996948E+00 = C( 5) 7FFE
FREQUENCY RESPONSE AND PLOT OF THE UNSCALED FILTER
FREQUENCY (Hz) NORMALIZED FILTER GAIN
SAMPLE RATE (dB)
.0 .000 -.5056
25.0 .005 -.5026
50.0 .010 -.4934
75.0 .015 -.4782
100.0 .020 -.4572
125.0 .025 -.4306
150.0 .030 -.3988
175.0 .035 -.3621
200.0 .040 -.3209
225.0 .045 -.2758
250.0 .050 -.2273
275.0 .055 -.1760
300.0 .060 -.1224
325.0 .065 -.0672
350.0 .070 -.0112
375.0 .075 .0451
400.0 .080 .1009
425.0 .085 .1555
450.0 .090 .2083
475.0 .095 .2583
500.0 .100 .3051
525.0 .105 .3478
550.0 .110 .3856
575.0 .115 .4181
600.0 .120 .4443
625.0 .125 .4637
650.0 .130 .4756
675.0 .135 .4793
700.0 .140 .4741
725.0 .145 .4594
750.0 .150 .4346
775.0 .155 .3991
800.0 .160 .3522
825.0 .165 .2933
850.0 .170 .2218
875.0 .175 .1372
900.0 .180 .0387
925.0 .185 -.0742
950.0 .190 -.2022
975.0 .195 -.3458
1000.0 .200 -.5056
1025.0 .205 -.6824
1050.0 .210 -.8768
1075.0 .215 -1.0894
1100.0 .220 -1.3209
1125.0 .225 -1.5722
1150.0 .230 -1.8438
1175.0 .235 -2.1366
1200.0 .240 -2.4514
1225.0 .245 -2.7891
1250.0 .250 -3.1506
1275.0 .255 -3.5369
1300.0 .260 -3.9491
1325.0 .265 -4.3881
1350.0 .270 -4.8554
1375.0 .275 -5.3522
1400.0 .280 -5.8798
1425.0 .285 -6.4400
1450.0 .290 -7.0344
1475.0 .295 -7.6648
1500.0 .300 -8.3336
1525.0 .305 -9.0429
1550.0 .310 -9.7955
1575.0 .315 -10.5943
1600.0 .320 -11.4429
1625.0 .325 -12.3452
1650.0 .330 -13.3058
1675.0 .335 -14.3301
1700.0 .340 -15.4245
1725.0 .345 -16.5966
1750.0 .350 -17.8560
1775.0 .355 -19.2142
1800.0 .360 -20.6862
1825.0 .365 -22.2910
1850.0 .370 -24.0546
1875.0 .375 -26.0129
1900.0 .380 -28.2186
1925.0 .385 -30.7535
1950.0 .390 -33.7575
1975.0 .395 -37.5027
2000.0 .400 -42.6524
2025.0 .405 -51.8526
2050.0 .410 -58.4713
2075.0 .415 -48.0415
2100.0 .420 -44.6600
2125.0 .425 -43.1637
2150.0 .430 -42.6618
2175.0 .435 -42.8666
2200.0 .440 -43.6961
2225.0 .445 -45.1986
2250.0 .450 -47.5913
2275.0 .455 -51.5095
2300.0 .460 -59.6586
2325.0 .465 -64.4729
2350.0 .470 -53.2338
2375.0 .475 -48.7840
2400.0 .480 -46.1724
2425.0 .485 -44.4982
2450.0 .490 -43.4370
2475.0 .495 -42.8437
2500.0 .500 -42.6524
COMPRESSED FILTER RESPONSE (dB)
10] [ 10
5] [ 5
0]************************* + + +[ 0
-5] ****** [ -5
-10] **** [ -10
-15] ** [ -15
-20] + + + ** + +[ -20
-25] * [ -25
-30] * [ -30
-35] * [ -35
-40] + + + * +[ -40
-45] * *** **[ -45
-50] ** * * [ -50
-55] * [ -55
-60] + + + + * * +[ -60
-65] * [ -65
-70] [ -70
-75] [ -75
0 500. 1000. 1500. 2000. 2500. FREQ. (Hz)
FILTER RESPONSE (dB)
1] [ 1
0] **************************************+ + + +[ 0
-1]** ***** [ -1
-2] **** [ -2
-3] ** [ -3
-4] *** [ -4
-5] ** [ -5
-6] ** [ -6
-7] \ [ -7
-8] ** [ -8
-9] \ [ -9
-10] + + + \ + +[ -10
-11] ** [ -11
-12] \ [ -12
-13] \ [ -13
-14] \ [ -14
-15] \ [ -15
-16] [ -16
-17] \ [ -17
-18] \ [ -18
-19] \ [ -19
-20] + + + + +[ -20
-21] \ [ -21
-22] \ [ -22
-23] [ -23
-24] \ [ -24
-25] [ -25
-26] \ [ -26
-27] [ -27
-28] \ [ -28
-29] [ -29
-30] + + + + +[ -30
-31] \ [ -31
-32] [ -32
-33] [ -33
-34] \ [ -34
-35] [ -35
-36] [ -36
-37] [ -37
-38] \ [ -38
-39] [ -39
-40] + + + + +[ -40
-41] [ -41
-42] [ -42
-43] \ *** ***[ -43
-44] \ / [ -44
-45] / \ [ -45
-46] / [ -46
-47] [ -47
-48] / \ [ -48
-49] / [ -49
-50] + + + + +[ -50
-51] [ -51
-52] \ \ [ -52
-53] / [ -53
-54] [ -54
-55] [ -55
-56] [ -56
-57] [ -57
-58] * [ -58
-59] [ -59
-60] + + + + \ +[ -60
-61] [ -61
-62] [ -62
-63] [ -63
-64] * [ -64
]..........|.........|.........|.........|.........|.........|.........|.........|.........|.........|....
0 500. 1000. 1500. 2000. 2500.
FREQUENCY (Hz)
END OF OUTPUT
*** START OF THE NEXT FILTER PROBLEM ***
THIS FILE IS; A:DEMO
BANDPASS FILTER
THE NUMBER OF BANDS = 2
THE FILTER LENGTH = 39
BAND EDGES ARE NORMALIZED TO THE SAMPLING RATE.
EDGE # 1 = .0000
EDGE # 2 = .2000
EDGE # 3 = .2500
EDGE # 4 = .5000
BAND # 1 IS A STOPBAND
BAND # 2 IS A PASSBAND
THE RELATIVE RIPPLE CONSTANTS ARE:
BAND # 1 RIPPLE CONSTANT = 1.00
BAND # 2 RIPPLE CONSTANT = 1.00
FILTER RESPONSE (dB)
1] [ 1
0] + + ****************************************************[ 0
-1] / [ -1
-2] / [ -2
-3] [ -3
-4] / [ -4
-5] [ -5
-6] / [ -6
-7] [ -7
-8] [ -8
-9] / [ -9
-10] + + + + +[ -10
-11] [ -11
-12] [ -12
-13] / [ -13
-14] [ -14
-15] [ -15
-16] [ -16
-17] [ -17
-18] / [ -18
-19] [ -19
-20] + + + + +[ -20
-21] [ -21
-22] [ -22
-23] [ -23
-24] [ -24
-25] / [ -25
-26] [ -26
-27] [ -27
-28] [ -28
-29] [ -29
-30] + + + + +[ -30
-31] [ -31
-32] [ -32
-33] [ -33
-34] [ -34
-35] [ -35
-36] [ -36
-37] [ -37
-38] [ -38
-39] [ -39
-40]* * ** ** ** ** * * * / + + +[ -40
-41] \ \ \ / [ -41
-42] / * [ -42
-43] / / / [ -43
-44] / / \ [ -44
-45] \ \ \ [ -45
-46] \ [ -46
-47] \ [ -47
-48] \ [ -48
-49] \ [ -49
-50] + * + + + +[ -50
-51] * [ -51
-52] [ -52
-53] [ -53
-54] * [ -54
-55] * [ -55
-56] [ -56
-57] [ -57
-58] [ -58
-59] * [ -59
-60] + + + + +[ -60
-61] [ -61
-62] * [ -62
-63] [ -63
-64] [ -64
-65] * [ -65
-66] [ -66
-67] [ -67
-68] [ -68
-69] [ -69
-70] + * + + + +[ -70
]..........|.........|.........|.........|.........|.........|.........|.........|.........|.........|....
0 0.1 0.2 0.3 0.4 0.5
NORMALIZED SAMPLE RATE
END OF OUTPUT
*** START OF THE NEXT FILTER PROBLEM ***
THIS FILE IS; A:DEMO
BANDPASS FILTER
THE NUMBER OF BANDS = 5
THE FILTER LENGTH = 127
THE SAMPLING RATE IS 10000
THE BAND EDGES ARE IN Hz.
EDGE # 1 = .000
EDGE # 2 = 250.000
EDGE # 3 = 350.000
EDGE # 4 = 600.000
EDGE # 5 = 700.000
EDGE # 6 = 1500.000
EDGE # 7 = 1600.000
EDGE # 8 = 2500.000
EDGE # 9 = 2600.000
EDGE # 10 = 5000.000
BAND # 1 IS A STOPBAND
BAND # 2 IS A PASSBAND
BAND # 3 IS A STOPBAND
BAND # 4 IS A PASSBAND
BAND # 5 IS A STOPBAND
THE RELATIVE RIPPLE CONSTANTS ARE:
BAND # 1 RIPPLE CONSTANT = 1.00
BAND # 2 RIPPLE CONSTANT = 1.00
BAND # 3 RIPPLE CONSTANT = 1.00
BAND # 4 RIPPLE CONSTANT = 1.00
BAND # 5 RIPPLE CONSTANT = 1.00
FILTER RESPONSE (dB)
1] [ 1
0] ****** + ******************* + + +[ 0
-1] [ -1
-2] [ -2
-3] [ -3
-4] [ -4
-5] [ -5
-6] / \ \ [ -6
-7] / [ -7
-8] [ -8
-9] [ -9
-10] + + + + +[ -10
-11] [ -11
-12] [ -12
-13] [ -13
-14] [ -14
-15] [ -15
-16] [ -16
-17] [ -17
-18] [ -18
-19] [ -19
-20] + + + + +[ -20
-21] [ -21
-22] [ -22
-23] [ -23
-24] [ -24
-25] [ -25
-26] [ -26
-27] * / \ * * \ * * * * * * * * * * *[ -27
-28] * * * * * * * * * [ -28
-29] \ \ / \ ** / [ -29
-30] +/ + + / \ + \ +[ -30
-31]** * * * \ / \ [ -31
-32] \ / / [ -32
-33] * * * * * [ -33
-34] * * [ -34
-35] * [ -35
-36] * * * [ -36
-37] [ -37
-38] * [ -38
-39] * * [ -39
-40] + + + + +[ -40
-41] [ -41
-42] * [ -42
-43] * [ -43
-44] [ -44
-45] * [ -45
-46] [ -46
-47] * [ -47
-48] * \ [ -48
-49] * [ -49
-50] + + + + +[ -50
-51] [ -51
-52] * [ -52
-53] [ -53
-54] [ -54
-55] [ -55
-56] [ -56
-57] [ -57
-58] * [ -58
-59] [ -59
-60] + + + + +[ -60
-61] [ -61
-62] [ -62
-63] [ -63
-64] [ -64
-65] * [ -65
]..........|.........|.........|.........|.........|.........|.........|.........|.........|.........|....
0 1000. 2000. 3000. 4000. 5000.
FREQUENCY (Hz)
END OF OUTPUT
*** START OF THE NEXT FILTER PROBLEM ***
THIS FILE IS; A:DEMO
BANDPASS FILTER
THE NUMBER OF BANDS = 3
THE FILTER LENGTH = 99
THE SAMPLING RATE IS 8000
THE BAND EDGES ARE IN Hz.
EDGE # 1 = .000
EDGE # 2 = 2000.000
EDGE # 3 = 2500.000
EDGE # 4 = 3000.000
EDGE # 5 = 3500.000
EDGE # 6 = 4000.000
BAND # 1 IS A STOPBAND
BAND # 2 IS A PASSBAND
BAND # 3 IS A STOPBAND
THE RELATIVE RIPPLE CONSTANTS ARE:
BAND # 1 RIPPLE CONSTANT = 1.00
BAND # 2 RIPPLE CONSTANT = 1.00
BAND # 3 RIPPLE CONSTANT = 1.00
FILTER RESPONSE (dB)
1] [ 1
0] + + ******************* + +[ 0
-1] / \ [ -1
-2] / [ -2
-3] \ [ -3
-4] / [ -4
-5] \ [ -5
-6] [ -6
-7] / [ -7
-8] [ -8
-9] \ [ -9
-10] + + + + +[ -10
-11] [ -11
-12] / [ -12
-13] [ -13
-14] [ -14
-15] \ [ -15
-16] [ -16
-17] [ -17
-18] [ -18
-19] / [ -19
-20] + + + + +[ -20
-21] [ -21
-22] [ -22
-23] \ [ -23
-24] [ -24
-25] [ -25
-26] [ -26
-27] [ -27
-28] / [ -28
-29] [ -29
-30] + + + + +[ -30
-31] [ -31
-32] [ -32
-33] [ -33
-34] \ [ -34
-35] [ -35
-36] [ -36
-37] [ -37
-38] [ -38
-39] [ -39
-40] + + / + + +[ -40
-41] [ -41
-42] [ -42
-43] [ -43
-44] [ -44
-45] [ -45
-46] [ -46
-47] [ -47
-48] [ -48
-49] \ [ -49
-50] + + + + +[ -50
-51] [ -51
-52] [ -52
-53] [ -53
-54] [ -54
-55] [ -55
-56] [ -56
-57] [ -57
-58] [ -58
-59] / [ -59
-60] + + + + +[ -60
-61] [ -61
-62] [ -62
-63] [ -63
-64] [ -64
-65] [ -65
-66] [ -66
-67] [ -67
-68] [ -68
-69] [ -69
-70] + + + + +[ -70
-71] [ -71
-72] [ -72
-73] \ [ -73
-74] [ -74
-75] [ -75
-76] [ -76
-77] [ -77
-78] [ -78
-79] [ -79
-80] + + + + +[ -80
-81] [ -81
-82] [ -82
-83] [ -83
-84] [ -84
-85] [ -85
-86] [ -86
-87] [ -87
-88] [ -88
-89] [ -89
-90] + + + + +[ -90
-91] [ -91
-92] [ -92
-93] [ -93
-94] [ -94
-95] [ -95
-96] [ -96
-97] [ -97
-98] [ -98
-99] [ -99
-100] + + + + +[ -100
-101] [ -101
-102] [ -102
-103]* * * * * ** *[ -103
-104] * * * * * * * * / * * * [ -104
-105] * * * * * * * [ -105
-106] * * * * / \ [ -106
-107] ** * * * * \ [ -107
-108] * * * [ -108
-109] * * * [ -109
-110] + * + + + +[ -110
-111] * * \ [ -111
-112] [ -112
-113] * [ -113
-114] * * * [ -114
-115] * [ -115
-116] * * [ -116
-117] * [ -117
-118] * [ -118
-119] [ -119
-120] + + + + +[ -120
-121] [ -121
-122] [ -122
-123] * [ -123
-124] * [ -124
-125] * * [ -125
-126] [ -126
-127] [ -127
-128] [ -128
-129] * [ -129
]..........|.........|.........|.........|.........|.........|.........|.........|.........|.........|....
0 800. 1600. 2400. 3200. 4000.
FREQUENCY (Hz)
END OF OUTPUT
*****************************************************************
* *
* Please send ( ) copies of Firplot for PC/CLONES to: *
* *
* NAME: *
* *
* ADDRESS: *
* *
* CITY: *
* *
* A copy of the manual is included with each copy of FIRPLOT, *
* which is licensed for a single machine. *
* *
* Price per copy is $45.00 *
* Indiana residents add 5% state sales tax( $ 2.25 ) *
* *
* A check or money order is inclosed for $ . *
* *
* Mail your order to: Paul Selwa *
* 61 East Tilden Drive *
* Brownsburg, Indiana 46112 *
* *
*****************************************************************